home *** CD-ROM | disk | FTP | other *** search
- Path: bloom-beacon.mit.edu!hookup!europa.eng.gtefsd.com!howland.reston.ans.net!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!zib-berlin.de!news.th-darmstadt.de!News.Uni-Marburg.DE!news.belwue.de!iptc!newsserv.zdv.uni-tuebingen.de!zrawi01
- From: wiedmann@mailserv.zdv.uni-tuebingen.de (Jochen Wiedmann)
- Newsgroups: de.comp.sys.amiga.misc,zer.z-netz.rechner.amiga.allgemein,de.answers,news.answers
- Subject: German Amiga-FAQ (Haeufig gestellte Fragen) (Part 1 of 2)
- Supersedes: <AmigaFAQg-1-762303609@mailserv.zdv.uni-tuebingen.de>
- Followup-To: de.comp.sys.amiga.misc
- Date: 29 Mar 1994 19:55:20 GMT
- Organization: InternetNews at ZDV, University of Tuebingen, Germany
- Lines: 1115
- Approved: news-answers-request@MIT.Edu
- Distribution: world
- Expires: Saturday, 16 Apr 94 21:50:03 (Z)
- Message-ID: <AmigaFAQg-1-764970603@mailserv.zdv.uni-tuebingen.de>
- Reply-To: wiedmann@mailserv.zdv.uni-tuebingen.de (Jochen Wiedmann)
- NNTP-Posting-Host: mailserv.zdv.uni-tuebingen.de
- Summary: German language Amiga-FAQ:
- Haeufig gestellte Fragen und Antworten zum Amiga.
- Neue Anwender sollten dies lesen!
- Originator: zrawi01@mailserv.zdv.uni-tuebingen.de
- Xref: bloom-beacon.mit.edu de.comp.sys.amiga.misc:15632 de.answers:51 news.answers:16995
-
- Posted-By: auto-faq 2.4
- Archive-name: de-amiga-faq/part1
- Last-modified: 29-Mar-1994
-
-
- Haeufig gestellte Fragen (FAQ) zum Amiga [1/2]
- ----------------------------------------------
-
- Es folgt eine Liste haeufig gestellter Fragen (FAQ = Frequently asked
- questions). Sie ist vor allem fuer neue Anwender gedacht, aber
- moeglicherweise finden auch erfahrene Anwender Interessantes. Dies ist
- Teil 1, der zweite beginnt mit Kapitel 5.
-
- Die Liste ist in Ascii-Format, damit sie von jedermann/frau gelesen werden
- kann. Sie ist auch in AmigaGuide- und Dvi-Format erhaeltlich als Teil des
- Amiga-FAQ-Archivs. (Datei text/docs/AmigaFAQxxxxxxg.lha auf dem
- Aminet, wobei xxxxxx das Datum der neuesten Version ist.)
-
- Bitte beachten Sie das Folgende:
-
- - Aenderungen der letzten zwei Wochen sind markiert.
- ! diese Zeile bzw. dieser Abschnitt wurden geaendert
- + diese Zeile ist neu
- < vor dieser Zeile wurde etwas geloescht
-
- - Ein Index ist am Ende des zweiten Teils. Wenn auch dies nicht
- weiterhilft: Bitte schicken Sie mir eine E-Mail. Vielleicht kann
- ich eine Antwort in die FAQ aufnehmen.
-
- - Vorschlaege, Beitraege, Kritik und Bierflaschen sind sehr
- willkommen. :-)
-
- Jochen Wiedmann
- Am Eisteich 9
- 72555 Metzingen (Germany)
- Tel. 07123 / 14881
-
- Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
-
- ==========================(Schnipp-Schnapp)===================================
-
- Amiga-FAQ
- *********
-
- Dieses Dokument enthaelt einige haeufig gestellte Fragen und
- versucht, Antworten zu geben. Seine Absicht ist es, neuen Benutzern zu
- helfen und die Zahl der News-Artikel zu reduzieren, die erfahrene
- Benutzer nicht mehr sehen wollen.
-
- Bitte beachten Sie, dass viele Abschnitte bis jetzt noch fast
- voellig leer sind. Ich verstehe von den betreffenden Abschnitten nichts
- und habe nicht das Gefuehl, als ob ich daran etwas aendern koennte.
- Damit sind Sie an der Reihe: Fuellen Sie die Luecken und teilen Sie mir
- mit, was man hier noch aufnehmen kann!
-
-
- Disclaimer
-
- 1 Hardware
- 1 Was sind 68EC020, 68EC030 und 68LC040?
- 2 Was ist ein mathematischer Coprozessor (FPU) ?
-
- 2 Das Betriebssystem
- 1 Kann ich eine andere als die eingebaute Kickstart benutzen?
-
- 3 Programmierung
- ! 1 Was ist die beste Dokumentation fuer Programmierer?
- ! 2 Was ist CATS?
- ! 3 Wo bekomme ich die Amiga-Include-Dateien?
- 4 Wie werde ich Developer?
- ! 5 Was fuer Compiler (und Assembler) gibt es?
- 6 Warum funktioniert keine Esc-Sequenz?
- 7 Kann ich AmigaBasic auf dem A1200 verwenden?
- 8 Wie lokalisiere ich mein Programm?
- 9 Wie erhaelt man einen Zeiger auf das Fenster einer Konsole?
- 10 Was sind Pragmas?
- 11 Wo finde ich die Funktion xxx?
-
- 4 Anwendungen
- 1 Text-Editoren
- 2 Was fuer Textverarbeitungsprogramme gibt es?
- 3 Desktop Publishing
- 4 Was ist TeX und wo bekomme ich es?
- 5 Gibt es PostScript-Interpreter auf dem Amiga?
-
- 5 Grafik
- 1 Was heiss Chunky- und Planar-Display?
- 2 Was ist Doublebuffering?
- 3 Was fuer Monitore arbeiten am Amiga 1200 oder 4000?
-
- 6 Emulationen
- 1 Kann ich meinen Amiga unter Unix benutzen?
- 2 Ist es moeglich, den Amiga als X11-Terminal zu benutzen?
-
- 7 Verschiedenes
- 1 Gibt es eine Unix-Version von LhA.
- 2 Was sind Dateien, die mit ... enden?
- 3 Gibt es ein Programm wie Stacker, um die Hard-Disk zu packen?
- 4 Wo bekomme ich Fish-Disk xxx?
- 5 Wie fuellt man die Tintenkartuschen der HPDeskjet-Drucker nach?
-
- 8 Wo und wie bekomme ich Software?
- 1 Dateien und Datenbanken zur frei kopierbaren Software
- 2 Eine Sammlung von Testberichten
- 3 Empfangen von Dateien von einem FTP-Server
- 4 Empfangen von Dateien von einem Mail-Server
- 5 Die Fish-Disketten
- 1 Die Amiga-Library-Disks
- 2 Die Fresh-Fish-Serie
- 6 Wie kann ich MS-Dos-Disketten lesen und schreiben?
- 7 Wie transportiere ich sehr grosse Dateien
-
- Das Amiga-FAQ-Archiv
-
- Beitraege zur Amiga-FAQ
-
- Danksagungen
-
- Index
-
-
-
- Disclaimer
- **********
-
- Diese Datei steht unter dem
-
- Copyright (C) Jochen Wiedmann
- Am Eisteich 9
- 72555 Metzingen (Deutschland)
- Tel. 07123 / 14881
- Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
-
- Es ist erlaubt, sowohl veraenderte als auch unveraenderte Kopien
- dieser Datei herzustellen und zu verteilen, vorausgesetzt, dass dabei
- die Bestimmungen der "GNU General Public License" eingehalten werden und
- die Copyright-Notiz sowie diese Erlaubnis unveraendert auf allen Kopien
- enthalten sind.
-
- Der Autor gibt *absolut keine* Garantie, dass die hier gegebenen
- Antworten korrekt sind. Einige dieser Antworten sind von anderen
- Benutzern beigetragen worden und ich habe teilweise nicht einmal die
- Moeglichkeit, auch nur die einfachsten Tests durchzufuehren.
- Vorschlaege, weitere Beitraege, neue Fragen und Antworten, Kritik und
- Beschimpfungen (oh, wie ich mein `nil:' liebe :-) sind aber sehr
- willkommen. Siehe Beitraege.
-
- 1 Hardware
- **********
-
- Dieses Kapitel enthaelt Fragen zur Amiga-Hardware.
-
- 1.1 Was sind 68EC020, 68EC030 und 68LC040?
- ==========================================
-
- Motorola, die Herstellerfirma der 680x0-Familie bietet auch gestutzte
- Versionen ihrer Prozessoren an. Diese sind etwas preisguenstiger als die
- Originale, weshalb Commodore auch den 68EC020 in den A1200 und den
- 68EC030 in den A4000/030 einbaut. Dafuer koennen sie aber auch etwas
- weniger.
-
- Der Unterschied zwischen 68020 und 68EC020 ist, dass letzterer nur
- 16MB Speicher adressieren kann. (Das ist der Grund, warum der A1200 nur
- maximal 10MB RAM haben kann.) In den meisten Faellen sollte man den
- Unterschied aber gar nicht bemerken.
-
- Das ist beim 68EC030 anders: Viele Benutzer werden feststellen, dass
- der 68030 eine MMU (Memory management unit) hat und der 68EC030 nicht.
- (Beim 68020 gibt es noch die Moeglichkeit, eine externe MMU, den 68851
- nachzuruesten.) Es gibt einige wichtige Programme, die eine MMU
- brauchen, z.B. Enforcer (ein Hilfsprogramm zur Fehlersuche), GigaMem
- (ein Programm zur Emulation von virtuellem RAM) oder alle aktuellen
- Unix-Versionen. (siehe Unix) Wer eines dieser Programme verwenden will
- und keinen A4000 oder A3000 hat, braucht deshalb eine Prozessorkarte
- mit einem 68030 oder 68040.
-
- Der 68LC040 ist ein 68040 ohne FPU. Siehe FPU.
-
- 1.2 Was ist ein mathematischer Coprozessor (FPU) ?
- ==================================================
-
- Die Prozessoren 68000 bis 68030 bieten ausschliesslich Integer (=
- Ganzzahl) Arithmetik. Floating-Point (Fliesskomma) Operationen werden
- ueber eine Befehlssequenz ausgefuehrt. Floating-Point Units (FPUs) bzw.
- mathematische Koprozessoren sind fuer diese Aufgaben optimiert.
-
- Im wesentlichen kann man drei FPU-Typen unterscheiden: Den 68881,
- 68882 und die interne FPU des 68040. Aufgrund der Trennung von
- Arithmetikeinheit und Konvertierlogik (notwenig zur Konversion
- anliegender Zahlenformate in das prozessoreigene 80bit-Format) ist die
- 68882 FPU bis zu 1.5 mal schneller als die 68881. Die interne FPU des
- 68040 besitzt darueber hinaus eine dreistufige Pipeline, allerdings
- sind in ihr nicht alle Befehle der 68881/68882 realisiert. Die
- fehlenden (trigonometrischen) Befehle werden per Software emuliert
- (z.B. ueber die 68040.library).
-
- Fuer viele Programme (Raytracing, DTP, Mathematik, TeX) existieren
- spezielle Coprozessorversionen. Je nach Auslastungsgrad kann damit eine
- Geschwindigkeitssteigerung bis zum Faktor 50 erreicht werden.
-
- Michael Kaiser (kaiser@ira.uka.de)
-
- 2 Das Betriebssystem
- ********************
-
- Dieses Kapitel behandelt Fragen zum Betriebssystem, sowohl Kickstart
- als auch Workbench.
-
- 2.1 Kann ich eine andere als die eingebaute Kickstart benutzen?
- ===============================================================
-
- Zunaechst ein paar Worte zur Legalitaet der Benutzung einer anderen
- Kickstart: Es ist *nicht* erlaubt, Kopien von Kickstarts fremder
- Computer zu erstellen und auf einem anderen Computer zu benutzen! (Es
- ist sogar fraglich, ob man das auf eigenen Maschinen darf, wenn man
- mehr als einen Amiga hat.)
-
- Natuerlich ist es moeglich und fuer gewisse Personen (z.B. Developer,
- siehe Developer) auch erlaubt. Es gibt zwei verschiedene
- Moeglichkeiten, eine Hardware- und eine Softwareloesung. Erstere ist,
- eine Platine in den Computer einzubauen, die sowohl die eigene als auch
- eine andere Kickstart aufnehmen kann, zwischen denen man dann
- umschalten kann.
-
- Die Softwareloesung benoetigt ein Programm (einen sogenannten
- Softkicker) und die Kopie der anderen Kickstart. Der Softkicker
- alloziert RAM, laedt die Kickstart-Kopie in dieses RAM und fuehrt einen
- Reset aus. Natuerlich fehlt dann nach dem Reboot unter der neuen
- Kickstart etwas RAM: 256KB weniger fuer Kickstart 1.2 oder 1.3 und
- 512KB fuer die neueren Kickstarts.
-
- Es gibt verschiedene Softkicker, von denen einige eine MMU benoetigen
- (siehe 68EC0xx). Eine nahezu perfekte Loesung fuer die Kickstart 1.3
- bietet das Programm kick13 (Aminet, Directory `util/misc'), weil hier
- bereits die Kickstart integriert ist. (Mit Erlaubnis von Commodore!)
- Fuer neuere Kickstarts wuerde ich SKick 3.43 (Aminet, Directory
- `os20/util') empfehlen, das keine MMU braucht und viele verschiedene
- Kickstarts unterstuetzt. Die Kopie des ROM zu erzeugen ist mit einem
- Programm wie dem Folgendem moeglich:
-
- #include <stdio.h>
-
- #define kickorig 0xf80000 /* 0xfc0000 fuer Kick 1.2 und 1.3 */
- #define kicklen 0x080000 /* 0x040000 fuer Kick 1.2 und 1.3 */
-
- void main(int argc, char*argv[])
- { FILE *fh;
-
- if ((fh = fopen("kickstart.file", "w")) != NULL)
- { result = fwrite(kickorig, kicklen, 1, fh);
- }
- fclose(fh);
- }
-
- 3 Programmierung
- ****************
-
- In diesem Kapitel finden vermutlich nur Programmierer Interessantes.
-
- ! 3.1 Was ist die beste Dokumentation fuer Programmierer?
- ! =======================================================
-
- Die beste verfuegbare Dokumentation sind sicherlich die RKM's (ROM
- Kernel Manuals, die schwarzen) von Commodore. Sie werden von
- Addison-Wesley veroeffentlicht.
- The Amiga ROM Kernel Manual: Libraries, ISBN 0-201-56774-1
- The Amiga ROM Kernel Manual: Devices, ISBN 0-201-56775-X
- The Amiga ROM Kernel Manual: Includes and Autodocs, ISBN
- 0-201-56773-3
- The Amiga Hardware Manual, ISBN 0-201-56776-8
- The Amiga User Interface Style Guide, ISBN 0-201-57757-7
-
- Vor allem die Libraries sind ein Muss. Weniger nuetzlich sind die
- Includes und Autodocs: Sie sind auf Diskette als Online-Hilfe sicher
- nuetzlicher. Siehe Include-Dateien.
-
- AmigaDOS wird in diesen Buechern kaum behandelt. Die Autodocs geben
- einige Informationen, aber um tiefer einzusteigen braucht man das
- The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
-
- ebenfalls von Commodore, das von Bantam Books herausgegeben wird.
-
- Eine gute Wahl ist auch
- The Amiga Guru Book
-
- von Ralph Babel. Das Buch beginnt mit einem ca. 250-seitigen
- allgemeinen Ueberblick ueber verschiedenste Aspekte der Programmierung
- des Amiga. Fuer Anfaenger duerften vor allem die Abschnitte ueber die
- Amiga-Datentypen sowie die Amiga-Includes und die amiga.lib interessant
- sein, aber auch Erfahrene finden hier mit Sicherheit noch Neues, was
- zum Teil nicht einmal in den RKM's enthalten ist. Den groessten Teil
- des Buches nehmen aber 500 Seiten nur zu AmigaDOS ein. Dieser Teil ist
- meines Erachtens der wichtigste, weil das AmigaDOS-Manual der
- schlechteste Teil der offiziellen Dokumentation ist. Das Buch ist sehr
- dicht geschrieben und deshalb weniger leicht lesbar als die RKM's, aber
- ich empfehle es als Zusatz und vor allem anstelle des AmigaDOS-Manuals.
- (Allerdings ist das Guru-Buch kein Ersatz fuer die Libraries & Devices,
- die hier nicht behandelt werden.) Ungluecklicherweise hat das Buch
- keine ISBN-Nummer und ist deshalb nur bei den folgenden Adressen
- erhaeltlich:
-
- ! Hirsch & Wolf OHG; Mittelstrasse 33; D-56564 Neuwied; Germany
- ! Voice: +49 (2631) 8399-0; Fax: +49 (2631) 8399-31
- ! E-Mail: <hhhirsch@carla.adsp.sub.org> (fax preferred)
- ! (Eurocard/Mastercard/VISA)
- !
- ! Periscope; Attn: Cody Lee; 1717 W Kirby Ave; Champaign, IL 61821, USA
- ! Voice: +1 (217) 398 4237; Fax: +1 (217) 398 4238
- ! E-Mail: <periscope@cei.com>
- !
- ! Someware; 27 rue Gabriel Peri; 59186 Anor; France
- ! Voice: +33 27596000; Fax: +33 27595206
- ! E-Mail: <didierj@swad.adsp.sub.org>
- <
- ! 3.2 Was ist CATS?
- ! =================
-
- Dies ist eine Abteilung von Commodore West Chester, die frueher
- `Commodore Amiga Technical Support' hiess und spaeter in `Commodore
- Application and Technical Support' umbenannt wurde. Die Mitglieder
- arbeiten unabhaengig von der Entwicklungsabteilung, aber eng mit ihr
- zusammen, und versuchen, Entwicklern ausserhalb von Commodore beim
- Erstellen guter Amiga-Anwendungen zu helfen, sei das eine Hard- oder
- Software. Dazu hat CATS eine Menge an Informationen und Tools
- gesammelt, auf Floppy, CD oder Papier. Ein grosser Teil dieses
- Materials ist auch der Allgemeinheit, d. h. fuer Nicht-Developer
- zugaenglich. Aber bitte CATS nicht mit einer Hotline verwechseln!
-
- Amerikaner koennen das Material von
- CATS - Developer Applications
- Commodore
- 1200 Wilson Drive
- West Chester, PA. 19380
-
- bekommen, der Distributor fuer ganz Europa ist die
- Fa. Hirsch & Wolf
- Mittelstr. 33
- 56564 Neuwied
- Tel. 02631/83990
-
- Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
-
- ! 3.3 Wo bekomme ich die Amiga-Include-Dateien?
- ! =============================================
-
- Der einzige legale Weg, die Include-Dateien und die AutoDocs zu
- bekommen (und Sie sollten sie bekommen, sie sind *sehr* nuetzlich!),
- ist, Developer zu werden (siehe siehe Developer) oder das sogenannte
- `NDU' (Native developers update kit, auch als `NDUK', `NDK' bekannt oder
- `ADU' fuer Amiga Developer Update) bei CATS zu kaufen. Siehe CATS. Es
- kostet etwa 50DM, was sicher ein fairer Preis ist. Dabei handelt es
- sich um ein 5-Disketten-Set, das neben den aktuellen Includes und
- AutoDocs auch Tools fuer Programmierer, z.B. Enforcer, Mungwall, Sushi
- und die debug.libg (zum Debuggen) sowie anderes, z.B. CatComp (siehe
- Lokalisierung) oder Report (fuer Bug-Reports oder Vorschlaege an
- Commodore) enthaelt. Die aktuelle Version ist 3.1 und fuer
- Programmierer beinahe obligatorisch.
-
- Wem die Includes genuegen, der kann diese ueber ein Update seines
- ! Compilers (nur kommerzielle Compiler) oder von den Fish-CD's bekommen.
- ! Siehe Fish-CD.
-
- 3.4 Wie werde ich Developer?
- ============================
-
- Um Developer zu werden, braucht man die `ADSP'-Antragsformulare
- (Amiga developer support program). Um diese zu bekommen, sollte man
- einen Brief an die lokale Commodore-Niederlassung schreiben und nach
- diesen Papieren fragen, in denen das weitere erklaert wird. In
- Deutschland ist die Adresse folgende:
- Commodore
- Lyoner Strasse 38
- 60528 Frankfurt
- Es gibt drei verschiedene Arten von Developern:
- *Registered*
- Hier bekommt man vor allem Zugang zum adsp-Kommunikationsnetz
- (eine Art Commodore-internes Usenet), ueber das man direkt mit
- anderen Entwicklern auch von Commodore selber ueber seine Probleme
- diskutieren kann. Die Jahresgebuehr betraegt 150 DM, die einmalige
- Aufnahmegebuehr 50 DM.
-
- *Certified*
- Dies ist die interessanteste Klasse: Man bekommt von der meisten
- Systemsoftware die aktuellen Beta-Versionen (z. B. Kickstart und
- Workbench) sowie die dazugehoerigen Includes und AutoDocs.
- Certifieds bekommen aber nicht jede Beta und in der Regel auch
- keine Hardware-Beta. Man bezahlt 400 DM pro Jahr dafuer und eine
- einmalige Aufnahmegebuehr von 100 DM.
-
- *Commercial*
- Kommerzielle Entwickler bekommen im wesentlichen dieselben
- Informationen wie die "Zertifizierten", allerdings kompletter,
- sprich auch Beta-Hardware, und etwas frueher. Dies hat auch seinen
- Preis: 700DM pro Jahr plus einmalige Aufnahmegebuehr von 100DM.
-
- Die Preise und die angebotenen Moeglichkeiten koennen von Land zu Land
- verschieden sein, auch gibt es meines Wissens nicht in allen Laendern
- den "Registered". Ein guter Tip ist es, eine Gruppe zu bilden und damit
- die Kosten zu reduzieren.
-
- Alle Entwickler muessen das sogenannte `NDA' (Non disclosure
- agreement) unterzeichnen. Dies besagt, dass sie die erhaltenen
- Informationen bei Strafe nicht an Unbefugte weitergeben duerfen.
-
- ! 3.5 Was fuer Compiler (und Assembler) gibt es?
- ! ==============================================
-
- Es gibt viele Programmiersprachen auf dem Amiga, kommerzielle
- Compiler ebenso wie frei kopierbare. Ich moechte nur diejenigen
- aufzaehlen, die mir bekannt sind oder die ich aus einem anderem Grund
- fuer erwaehnenswert halte.
-
- *Assembler*
- Alle C-Compiler beinhalten einen Assembler. Frei kopierbar und
- zuverlaessig sind A68K und PhxAss. (Aminet, Directory `dev/asm'
- oder Fish-Disks 521 bzw. 906)
-
- *C*
- *C++*
- Frei kopierbare C-Compiler sind der `gcc' (der sein eigenes
- Directory `dev/gcc' auf dem Aminet hat) und die Probeversion (mit
- der man aber schon eine ganze Menge anfangen kann) von `Dice' (per
- FTP von `ftp.uni-paderborn.de', Directory
- `/news/comp.binaries.amiga/volume91/languages' oder auf Fish disk
- ! 491). Der grosse Vorteil von `gcc' ist, dass man ihn auf der
- ! ganzen Welt und auf nahezu jedem Computer findet. Ein weiterer
- ! Vorteil ist, dass er sogar einen C++-Compiler enthaelt! Aber er
- ! ist langsam und benoetigt 4MB RAM oder mehr.
- !
- ! Kommerzielle C-Compiler sind `Aztec-C', `Dice' und `SAS-C'. Ich
- ! kann `Aztec-C' leider nicht mehr empfehlen, denn der Compiler
- ! scheint nicht mehr weiterentwickelt zu werden. Was die
- ! kommerziellen Compiler auszeichnet, sind ihre hervorragenden
- ! Source-Level-Debugger, die den anderen fehlen. SAS-C enthaelt
- ! sogar einen Crosscompiler, der C++ in C uebersetzt und ebenfalls
- ! den Source-Level-Debugger unterstuetzt. Dice ist der
- ! preisguenstigste und schnellste Compiler, aber auch SAS-C ist
- ! recht preiswert fuer Studenten oder als Update (sogar als Update
- ! von anderen Compilern.)
-
- Comeau C++ ist ebenfalls ein Crosscompiler, was an und fuer sich
- kein Problem waere. Aber Comeau C++ hat keinen integrierten
- C-Compiler, man braucht also zusaetzlich SAS-C, Aztec-C oder Dice.
- Aber er unterstuetzt die neuesten Standards und laeuft wie `gcc'
- auf vielen verschiedenen Systemen. In Deutschland wird auch Maxxon
- C++ angeboten, ueber das ich nichts sagen kann. Beide Compiler
- sind kommerziell. Comeaus Adresse ist:
- Comeau computing
- 91-34, 120th Street
- Richmond Hill, NY, 11418-3214
- USA
-
- EMail: Greg Comeau, comeau@bix.com
-
- *Forth*
- JForth soll eine exzellente Forth-Version sein. Unter anderem
- enthaelt es objektorientierte Erweiterungen, ein volles
- Amiga-Interface und einen Anwendungsgenerator. Es ist erhaeltlich
- von:
- Delta Research
- P.O. Box 151051
- San Rafael, CA 94915-1051
-
- Phone: (415) 453-4320
- EMail: Phil Burk, phil@ntg.com
- Mike Haas, haas@starnine.com
-
- *Fortran*
- (Seufz! Es gibt immer noch Leute, die es brauchen :-<) Frei
- kopierbar sind BCF (Fish disk 470) und f2c, der Fortran in
- C-Quelltext umwandelt. (Aminet, Directory `/dev/misc'). Ein
- kommerzieller Compiler ist von ABSoft erhaeltlich. Allerdings sind
- dies alles nur Fortran-77-Compiler, es gibt keine
- Fortran-90-Compiler auf dem Amiga.
-
- *Lisp*
- Frei kopierbare Lisp-Interpreter sind XLisp (Fish-Disk 181) und
- OakLisp (Fish-Disks 519 und 520) und CLISP
- (`/pub/lisp/clisp/binaries/amiga' at
- `ma2s2.mathematik.uni-karlsruhe.de'). Auch Compiler gibt es: Gambit
- (Fish-Disks 764 und 765) sowie Scheme-to-C (Fish-Disks 556-558).
- Von Interesse ist vielleicht eine Mail-Liste: Senden Sie dazu eine
- Mail mit dem Wort `Subscribe' an `amigalisp@contessa.phone.net'.
-
- *Prolog*
- `/dev/lang/UNSWProlog.lha' und `dev/lang/sbp3_1e' auf dem Aminet
- sowie `SBProlog' auf der Fish-Disk 141 und `SBProlog' auf der
- Fish-Disk 145 sind frei kopierbare Prolog-Interpreter.
-
- *Modula-2*
- M2Amiga wird in Europa und Benchmark Modula-2 in den USA
- angeboten. Beide sollen sehr gut sein und sowohl ueber gute
- Source-Level-Debugger als auch eine umfangreiche Bibliothek
- verfuegen. Besonders M2Amiga wird sehr gut unterstuetzt durch eine
- deutsche Benutzergruppe (AMOK), die z.B. eine eigene PD-Serie
- anbieten.
-
- M2Amiga ist bekommt man bei
- A+L AG
- Daderiz 61
- 2540 Grenchen
- Schweiz
-
- Tel.: +41/65/52 03-11
- Fax: -79
-
- und Benchmark Modula-2 ist erhaeltlich von:
- Armadillo Computing
- 5225 Marymount Drive
- Austin, Texas 78723
- USA
-
- Phone/FAX: 512/926-0360.
- EMail: Jim Olinger, jolinger@bix.com
-
- *Oberon*
- *Oberon-2*
- A+L vertreibt auch AmigaOberon, der sowohl Oberon als auch Oberon-2
- beherrscht. Der Compiler kommt mit einer integrierten
- Entwicklungsumgebung (incl. freikonfigurierbarem Editor) und
- umfangreicher Modulbibliothek. Library Linker zum einfachen
- Erzeugen von AmigaOS shared libraries sowie run-time
- Source-Level-Debugger sind ebenfalls erhaeltlich.
-
- Auch fuer diesen Compiler gibt es Unmengen von Modulen und
- Bsp.-Sourcen auf AMOK-Disks.
-
- *Pascal*
- Es gibt einen PD-Compiler namens PCQ (Aminet, Directory `dev/lang'
- oder Fish-Disk 511), der allerdings kein voller Pascal-Compiler
- ist und dem sehr wesentliche Dinge fehlen. P2C konvertiert Pascal
- in C und ist auf der Fish-Disk 341 zu finden. (Aminet:
- `/dev/misc/p2c120.lha') Ferner gibt es zwei kommerzielle Compiler
- namens HiSoft-Pascal (von der gleichnamigen Firma) und KickPascal
- von Maxxon. HiSoft und P2c behaupten, kompatibel zu Turbo-Pascal
- 5.0 zu sein. HiSoft hat ausserdem einen guten
- Source-Level-Debugger.
-
- 3.6 Warum funktioniert keine Esc-Sequenz?
- =========================================
-
- Viele Drucker kommen mit einem Handbuch, das erklaert, welche
- Esc-Sequenzen welche Funktion ausloesen. Aber wenn man diese Sequenzen
- dann einmal ausprobiert, passieren oft merkwuerdige Sachen, naemlich
- entweder gar nichts oder etwas ganz anderes, als geplant war. Und das
- hat auch einen Grund, naemlich die Amiga-Druckertreiber. Diese Treiber
- sind so gebaut, dass sie nur einen bestimmten Satz `ANSI-Esc-Sequenzen'
- verstehen, nicht die (verschiedenen) druckereigenen, von den
- verschiedenen Druckerherstellern definierten. Der Sinn dabei ist, dass
- jede Anwendung auf dem Amiga nur diesen einen Standardsatz an Sequenzen
- verwendet und so nicht zu wissen braucht, welcher Drucker tatsaechlich
- angeschlossen ist. Der Druckertreiber uebersetzt dann diese
- Standardsequenzen in die druckereigenen. Eine Liste der verfuegbaren
- ANSI-Esc-Sequenzen findet sich im aktuellen Workbench-Handbuch (oder in
- aelteren AmigaDOS-Handbuechern). Wenn Du nun eine Steuersequenz an den
- Drucker schicken willst, die es nicht als ANSI-Sequenz gibt, hast Du
- zwei Moeglichkeiten, dies doch zu erreichen:
- 1. Umgeh den Druckertreiber (der erfolglos versuchen wuerde, die
- Sequenz zu interpretieren oder zu uebersetzen) und sende die
- Ausgabe *nur* fuer die Laenge dieser Sequenz an `PAR:' (bzw.
- `SER:'). Dabei muss man die Druckerausgabekanaele umstaendlich oft
- umschalten, und man muss wissen, wo der Drucker angeschlossen ist
- (`PAR:' oder `SER:').
-
- 2. Benutze eine spezielle ANSI-Sequenz, genau fuer diesen Fall
- gedacht:
- `Esc[<n>"<x>'
- wobei `<n>' die dezimal geschriebene Anzahl an Bytes in der Sequenz
- `<x>' ist, die gerade die spezielle Drucker-Sequenz enthaelt. Diese
- ANSI-Sequenz sagt dem Druckertreiber, dass er die naechsten `<n>'
- Bytes nicht interpretieren oder uebersetzen soll.
- Aber beide Methoden haben einen grossen Nachteil, wenn sie in
- einem Anwendungsprogramm verwendet werden: Man verliert die
- Druckerunabhaengigkeit! Solange man sich an die ANSI-Sequenzen haelt,
- kann man jeden Drucker der Welt ansteuern, solange es einen
- Amiga-Druckertreiber faer ihn gibt. Wenn man anfaengt, druckereigene
- Sequenzen zu verwenden, ist das Programm an diesen einen Druckertyp
- gebunden und ist mit keinem anderen benutzbar (oder man muesste einige
- Dutzend neue Druckertreiber fuer dieses Programm erstellen).
-
- Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
-
- 3.7 Kann ich AmigaBasic auf dem A1200 verwenden?
- ================================================
-
- Letztens ging eine Kontroverse ueber AmigaBasic durch die Netze: Ich
- sagte, auf dem A1200 laeuft es einigermassen problemlos, jemand anders
- berichtete, dass es bei jedem kleinsten Fehler sofort komplett
- abstuerzt, was ich nicht nachvollziehen konnte.
-
- Jetzt kann ich es: Es liegt am Sound-Prefs-Editor. Wenn man in ihm
- die Sound-Ausgabe ganz abschaltet, kann man mit AmigaBasic arbeiten.
- Wenn hier ein Sound (z. B. Piepsen) angewaehlt ist, kollidiert das mit
- dem Sound, den AmigaBasic offensichtlich zu Fuss und nicht ganz korrekt
- selber erzeugen will, bumm.
-
- Abhilfe also:
- 1. Im Sound-Editor den Ton abstellen.
-
- 2. Auf einem A4000 (oder einem A1200 mit Fast-RAM-Erweiterung (1))
- muss man zusaetzlich NoFastMem aktivieren.
-
- 3. Moeglichst SUBs vermeiden und stattdessen herkoemmliche GOSUBs
- benutzen, dann ist die Kompatibilitaet zu neueren Prozessoren
- hoeher.
-
- Dr. Peter Kittel, peterk@cbmger.de.so.commodore.co
-
- ---------- Footnotes ----------
-
- (1) Nur bei einem zusaetzlichen Prozessor
-
- 3.8 Wie lokalisiere ich mein Programm?
- ======================================
-
- Nehmen wir an, wir wollen ein `HelloLocalWorld.c' schreiben. Das
- letztendliche Programm sieht dann ungefaehr so aus:
-
- #include "HelloLocalWorld_Cat.h"
- #include <clib/exec_protos.h>
-
- struct Library *LocaleBase;
-
- void main(int argc, char *argv[])
-
- {
- /* Oeffne die locale.library. (Kein Abbruch, wenn sie nicht
- da ist, weil dann einfach die eingebauten Strings verwendet
- werden. Aus diesem Grund auch keine Verwendung des
- AutoOpening, auch wenn es der Compiler beherrscht.
- */
- LocaleBase = OpenLibrary("locale.library", 38);
- OpenHelloLocalWorldCatalogs(NULL, NULL);
-
- printf(GetString(MSG_Hello));
-
- CloseHelloLocalWorldCatalog();
- if (LocaleBase) CloseLibrary(LocaleBase);
- }
-
- Die Funktion GetString prueft, ob die gewuenschten Kataloge
- vorhanden sind und liefert einen Zeiger auf einen String, entweder den
- eingebauten oder den Katalogstring. (In unserem Fall den deutschen
- String.)
-
- Der Hauptunterschied zum gewohnten HelloWorld.c ist also (abgesehen
- von der minimalen Initialisierung und dem Gegenstueck am Programmende),
- Strings durch einen Funktionsaufruf zu ersetzen. Man braucht also eine
- Datei `HelloLocalWorld_Cat.c', die die Funktionen OpenHelloLocalWorld,
- GetString, CloseHelloLocalWorld_Cat.h und die eingebauten Strings
- enthaelt (dies koennte ein Array sein, das unter anderem
- array[MSG_Hello] = "Hello, local world.\n";
-
- enthaelt) und ein Includefile `HelloLocalWorld_Cat.h', das die ID's wie
- MSG_Hello definiert. Es ist nicht noetig, zu wissen, wie diese Dateien
- intern arbeiten, insbesondere benoetigt man auch keine Kenntnis der
- `locale.library'!
-
- Dazu gibt es verschiedene Kataloggeneratoren (im Folgenden KG),
- naemlich `CatComp' (nur fuer Developer), `KitCat', (nur deutsche
- Dokumentation, was hierzulande kein Problem ist), `MakeCat', (das ich
- nicht kenne) und `FlexCat' (das ich empfehle, einerseits, weil es sehr
- flexibel im erzeugten Source ist und z.B. Lokalisierung unter 2.0 sowie
- beliebige Programmiersprachen unterstuetzt, selbst Amiga-E, Cluster,
- Pascal, ... und andererseits, weil es von mir ist ;-), die diese Dateien
- sowie die Kataloge erzeugen. (Der obige Quelltext koennte je nach KG
- leicht unterschiedlich aussehen.) Siehe Aminet, directory `dev/misc'.
-
- Wie funktionieren diese KGs? Zunaechst erzeugt man eine sogenannte
- `Katalogbeschreibung' (`Catalog description'), die so aussehen koennte:
- ; Mit einem Semikolon beginnende Zeilen sind Kommentare
- # language english
- ; die Sprache der eingebauten Strings
- # version 0
- ; die Katalogversion (0 = beliebig)
- MSG_Hello (1/15/30)
- Hello, local world
-
- Jeder String wird durch zwei Zeilen wie die letzten beiden definiert:
- MSG_Hello ist die String-ID, (1/15/30) gibt den Wert der ID sowie die
- minimale und maximale Laenge an. (Diese Argumente koennen auch
- weggelassen werden, in welchem Fall einfach die naechste freie ID
- verwendet wird.)
-
- Nun schreiben wir das Programm. Sobald es fertig ist, wird mit dem
- KG eine sogenannte Kataloguebersetzung (eine fuer jede andere Sprache
- als die eingebaute) erzeugt, die so aussehen koennte:
- ; Mit einem Semikolon beginnende Zeilen sind Kommentare
- ## language deutsch
- ; the catalog language
- ## version $VER: Deutsch.catalog 1.0 (22.12.93)
- ; the catalog files version string
- MSG_Hello
-
- ; Hello, local world
-
- Beachten Sie die leere Zeile nach der String-ID! (Die Argumente von ##
- language und ## version waeren vielleicht leer.) Hier muessten jetzt
- die deutschen Strings eingesetzt werden. Mit dem KG wird daraus dann
- der eigentliche `Katalog' erzeugt. (Beachten Sie auch, dasss hier die
- Angaben ueber String-ID und Stringlaenge fehlen: Sie werden aus der
- Katalogbeschreibung uebernommen.
-
- Wenn das Programm veraendert wird (neue Strings, andere Laengen) und
- die Katalogbeschreibung sich damit ebenfalls aendert, dann kann der KG
- analog benutzt werden, um auch die Kataloguebersetzung und damit den
- Katalog auf den neuesten Stand zu bringen.
-
- 3.9 Wie erhaelt man einen Zeiger auf das Fenster einer Konsole?
- ===============================================================
-
- Die folgende Funktion liefert den Window-Zeiger eines CON-Fensters.
- Sie kann unter allen Versionen des Amiga-OS ausgefuehrt werden.
-
- struct Window *getConWindowPtr(BPTR fh)
- {
- struct Window *w;
- struct FileHandle *cfh;
- struct StandardPacket *sp;
- struct InfoData *id;
- struct MsgPort *mp;
-
- w = NULL;
-
- if((cfh = BADDR(fh))->fh_Type != NULL)
- {
- if(sp = AllocMem(sizeof(struct StandardPacket),
- MEMF_PUBLIC | MEMF_CLEAR))
- {
- if(id = AllocMem(sizeof(struct InfoData),
- MEMF_PUBLIC | MEMF_CLEAR))
- {
- if(mp = CreatePort(NULL, 0))
- {
- sp->sp_Msg.mn_Node.ln_Name = (char *)&sp->sp_Pkt;
- sp->sp_Pkt.dp_Link = &sp->sp_Msg;
- sp->sp_Pkt.dp_Port = mp;
- sp->sp_Pkt.dp_Type = ACTION_DISK_INFO;
- sp->sp_Pkt.dp_Arg1 = MKBADDR(id);
-
- PutMsg(cfh->fh_Type, &sp->sp_Msg);
- (void)WaitPort(mp);
- (void)GetMsg(mp);
-
- if(sp->sp_Pkt.dp_Res1)
- w = (struct Window *)id->id_VolumeNode;
-
- DeletePort(mp);
- }
- FreeMem(id, sizeof(struct InfoData));
- }
- FreeMem(sp, sizeof(struct StandardPacket));
- }
- }
-
- return w;
- }
-
- Anmerkungen:
- * Auf ein CON-Fenster direkt zuzugreifen kann Konflikte mit Aktionen
- des CON-Handlers hervorrufen. Seien Sie vorsichtig!
-
- * Um den Window-Zeiger einer CLI-Konsole zu erhalten, uebergibt man
- ein durch Open("*", MODE_OLDFILE) gewonnenes FileHandle an obige
- Funktion.
-
- * Das Ergebnis der obigen Funktion kann sehr wohl NULL sein, etwa im
- Falle eines AUX-Handlers oder falls ein AUTO-CON-Handler sein
- Fenster nicht oeffnen kann.
-
- * Schickt man ein ACTION_DISK_INFO-Paket an einen AUTO-CON-Handler
- (2.0+), so verliert dessen Fenster seine speziellen
- AUTO-Eigenschaften (es kann also nicht mehr durch das Betaetigen
- des Close-Gadgets geschlossen werden), weil der in id_VolumeNode
- gelieferte Window-Zeiger gueltig bleiben muss.
-
- * Alles in allem: Verwenden Sie diese Funktion nicht. :-)
-
- Weitere Informationen finden Sie auf den Seiten 273, 276, 435, 463,
- 485 und 629 im "Amiga Guru Book" (siehe Dokumentation).
-
- Ralph Babel, rbabel@babylon.pfm-mainz.de
-
- 3.10 Was sind Pragmas?
- ======================
-
- Pragmas sind spezielle Anweisungen an den Praeprozessor eines
- C-Compilers. Zwei Probleme entstehen bei der Verwendung von Pragmas:
- 1. Pragmas sind hochgradig compilerspezifisch. Nicht einmal die
- Amiga-Compiler haben dieselben Pragmas, selbst wenn damit das
- gleiche bewirkt wird.
-
- 2. Man kann sich nicht darauf verlassen, dass ein Compiler Pragmas
- ignoriert, die er nicht fuer steht. Dies gilt selbst dann, wenn
- man einen Ausdruck wie den folgenden verwendet:
- #ifndef MY_COMPILER
- #pragma DoAnything
- #endif
-
- Das letztere Problem laesst sich umgehen, indem man Pragmas wie folgt
- in eigene Include-Files setzt. (Das gleiche gilt uebrigens auch fuer
- andere Praeprozessor-Kommandos wie #asm (Aztec-C) oder #extern (C++).)
- #ifndef MY_COMPUTER
- #include <mypragmas.h>
- #endif
-
- Aber was machen Pragmas auf dem Amiga? Meistens werden sie verwendet,
- um dem Compiler mitzuteilen, wie gewisse Library-Funktionen aufgerufen
- werden. (Tatsaechlich wird fast immer diese Verwendung gemeint, wenn
- Amiga-Besitzer ueber Pragmas sprechen.) Gewoehnliche C-Funktionen
- erwarten ihre Argumente auf dem Stack, Library-Funktionen dagegen in
- bestimmten Registern. Ferner erwarten sie den `Library-Base-Pointer' in
- Register a6. Betrachten wir eine Pragma-Anweisung von Aztec-C:
- #pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
-
- Dies weist den Compiler an, das erste Argument in Register a1 und das
- zweite in d0 zu laden. Ferner wird der Inhalt der Variablen SysBase in
- Register a6 geladen. Maxon-Pragmas sehen genauso aus, Dice- und
- SAS-Pragmas sind allerdings etwas komplizierter:
- #pragma libcall SysBase FreeMem d2 0902
-
- Hier ist d2 (wie 0xd2 oben) der `Library-Vektor-Offset' (siehe
- naechstes Beispiel). Die letzte Ziffer ist die Zahl der Argumente, die
- davorstehende 0 ein Code fuer das Register mit dem Ergebnis und die
- davor stehenden Ziffern sind Codes fuer die Register mit den Argumenten
- in verkehrter Reihenfolge. (Die Codes bedeuten 0=d0, 1=d1, .., 8=a0,
- 9=a1, a=a2, ..)
-
- Ein Kommando wie `FreeMem(fib,sizeof(*fib);' wuerde ein Compiler nun
- in folgenden Code uebersetzen:
- move.l _fib,a1
- move.l 260,d1 ; sizeof(struct FileInfoBlock)
- move.l _SysBase,a6
- jsr -0xd2(a6) ; 0xd2 = _LVOFreeMem
-
- FreeMem in dieser Art aufzurufen ist kuerzer und schneller als
- zunaechst die Argumente auf den Stack zu legen und dann eine Funktion
- _FreeMem aufzurufen, die letzten Endes doch nur dasselbe tun und die
- Argumente vom Stack in dieselben Register laden wuerde.
-
- Das Portierungsproblem der Pragmas umgeht man, indem man sie
- folgendermassen in den eigenen Quelltext einbindet:
- /* Lade den Funktionsprototyp. Dieser ist nicht vom */
- /* verwendeten Compiler abhaengig. */
- #include <clib/exec_protos.h>
-
- /* Pragmas sind vom Compiler abhaengig, aber wenigstens */
- /* die Namen der Dateien mit Pragmas sind relativ */
- /* einheitlich. */
- #ifdef AZTEC_C
- #include <pragmas/exec_lib.h>
- #endif
- #if defined(__SASC) || defined(_DCC) || defined(__MAXON__)
- #include <pragmas/exec_pragmas.h>
- #endif
- #ifdef __GNUC__
- #include <inline/exec_lib.h>
- #endif
-
- Das obige Beispiel kann problemlos mit allen angegebenen Compilern
- verwendet werden und produziert optimalen Code.
-
- Eine abschliessende Frage bleibt allerdings: Wie bekommt man die
- Pragmas? Die meisten Compiler haben bereits fertige Pragmas im
- Lieferumfang. Allerdings hilft das nicht, wenn man z.B. eine neue
- Library benutzen moechte oder nur die Pragmas einer veralteten Version
- hat. In diesem Fall kann man die Pragmas selbst aus den sogenannten
- `FD'-Files erzeugen. Dazu haben die meisten Compiler ein Utility
- namens `fd2pragma'. (Das NDU hat z.B. ein Directory namens FD, in dem
- die FD-Files aller Libraries und Devices des OS enthalten sind. siehe
- Include-Dateien) Es gibt auch ein frei kopierbares fd2pragma, das
- Pragmas fuer Aztec, Dice, SAS und Maxon sowie LVO-Files fuer den
- Aztec-Assembler und eventuelle Tag-Versionen produziert. (Aminet,
- `dev/misc/fd2pragma2_0.lha' oder auf den Fish-CD's)
-
- 3.11 Wo finde ich die Funktion xxx?
- ===================================
-
- Zunaechst sollte man sich versichern, dass die Funktion tatsaechlich
- fehlt: Z.B. Floating-Point-Funktionen befinden sich in einer speziellen
- Link-Library, die erst mit der Option `-lm' eingebunden wird. Ferner
- kann es eine fehlende Variable sein: Wenn man z.B. ohne es zu bemerken
- eine Intuition-Funktion benutzt, dann wird der Linker ueber das Fehlen
- eines Symbols `IntuitionBase' klagen. In diesem Fall muss man also
- lediglich das Folgende irgendwo im globalen Teil seines Quelltextes
- einbauen:
- struct Library *IntuitionBase;
-
- (Und vergessen Sie nicht, die Library mit OpenLibrary() zu eroeffnen und
- mit CloseLibrary() zu schliessen! :-)
-
- Allerdings koennte die Funktion natuerlich tatsaechlich fehlen. Wenn
- man zum Beispiel nur die Version 2.0 der amiga.lib hat, dann fehlen
- etwa die Locale-Funktionen oder die Memory-Pool-Funktionen obwohl sie
- prinzipiell verwendbar sind. (1) Die einfachste (und beste) Loesung
- ist, das sogenannte NDU zu kaufen. Siehe Include-Dateien. Wer nicht
- solange warten moechte, fuer den ist die Frage, welche Art von Funktion
- in seiner Link-Library fehlt:
- * Einfache Amiga-Library-Funktionen (z.B. `exec/AllocPooled' oder
- `locale/OpenCatalogA') kann man mit Pragmas aufrufen und braucht
- dann lediglich Informationen ueber die Aufrufkonventionen
- (Library-Base, Library-Vektor-Offset und Argumentregister)
-
- * Tag-Funktionen sind meistens einfach Zwischenfunktionen, die ihre
- Argumente auf dem Stack erwarten und dann die eigentliche
- Library-Funktion aufrufen. Wenn man z.B. die Funktion
- `dos/AllocDosObject', die eine Konstante und einen Zeiger auf ein
- Array als Argumente erwartet, nach der obigen Methode konstruiert
- hat, dann hat man damit auch ihre Stack-Variante! Dazu erzeugt man
- aifach die folgende Funktion:
- #include <clib/dos_protos.h>
- #include <pragmas/dos_pragmas.h> /* Evtl. anderer Name */
-
- void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
- { return(AllocDosObject(objtype, (struct TagItem *) &tag1);
- }
-
- Mit fd2pragma kann das auch automatisch geschehen. Siehe Pragmas.
-
- * Einige Funktionen bleiben aber noch uebrig: Amiga.lib enthaelt
- naemlich auch Funktionen, die fuer sich selbst interessant sind,
- z.B. die BOOPSI-Funktionen (`DoMethod', `DoSuperMethod'), die
- Memory-Pool-Funktionen (`LibAllocPooled', `LibCreatePool', die
- Ersatz fuer entsprechende 3.0-Funktionen sind) oder `HookEntry',
- das sehr hilfreich bei der Programmierung von Hooks ist. Diese
- kann man nur durch entsprechende, disassemblierte und neu
- assemblierte oder compilierter Versionen ersetzen. Im
- AmigaFAQ-Archiv sind einige dieser Funktionen bereits enthalten.
-
- ---------- Footnotes ----------
-
- (1) Dieses Problem betrifft vor allem Besitzer von Aztec-C, das
- seither nicht weiter unterstuetzt wird und von Dice, der manchmal etwas
- unvollstaendig ist. Ich besitze beide ..
-
- 4 Anwendungen
- *************
-
- Dieses Kapitel entaehlt Informationen zu verschiedenen
- Anwendungsbereichen.
-
- 4.1 Text-Editoren
- =================
-
- Editoren sind Programme, die die Eingabe von unformatiertem Text
- ermoeglichen. Dies ist meist Text, der anschliessend durch den
- Computer verarbeitet wird. Programmierer benutzen etwa Editoren zur
- Eingabe der Quelltexte. Unter Unix beginnt Textverarbeitung meist mit
- einem Editor, dessen Ausgabe dann mit einer Textbearbeitungssprache
- (z.B. TeX) in gutaussehende Dokumente umgewandelt wird, da unter Unix
- Textverarbeitungsprogramme kaum verbreitet sind.
-
- *Kommerzielle Produkte*
- CygnusEd Professional und TurboText scheinen hier die Nase vorn zu
- haben. Auf den Fish-Disks gibt es Dutzende von
- Shareware-Editoren. Eine Demoversion von TurboText ist auf
- Fish-Disk 445 und eine allerdings sehr alte von CygnusEd auf
- Fish-Disk 95. Die Folgenden Editoren sind frei kopierbar.
-
- *Emacs*
- Gnu Emacs (Aminet, Directory `util/gnu') kommt von Unix und ist
- moeglicherweise der Koenig der Editoren. Er ist riesig (ueber
- 1MB), enthaelt eine unglaubliche Vielfalt von Funktionen (z.B. ein
- eigenes Fenstersystem und sogar ein Spiel :-) und beliebig
- erweiterbar: Emacs enthaelt einen eigenen Lisp-Interpreter!
- Andererseits ist er dadurch schwer erlernbar und so beliebig
- konfigurierbar, dass man mit dem Emacs eines anderen oft nicht
- mehr umgehen kann...
-
- *Vi*
- Einfacher, aber weniger konfigurierbar und nicht erweiterbar ist
- Vi. Er ist vor allem bei Unix-Benutzern beliebt, weil es ihn auf
- *jeder* Unix-Maschine gibt. Die Wahl zwischen beiden ist eine
- Sache der persoenlichen Vorliebe, kann einen allerdings fuers
- Leben kennzeichnen. Vim und Stevie (Fish-Disk 591 bzw. 256 und
- Aminet, Directory `util/edit') sind Vi-Versionen fuer den Amiga.
-
- *DME*
- Viele Amiga-Programmierer moegen DME. Er ist schnell und voll
- konfigurierbar: Menues und Tastenbelegung sind beliebig. Er ist
- auch leichter erlernbar als Emacs und Vi. Es gibt drei
- verschiedene Versionen: AmokEd, DME und XDME. Die Wahl ist
- Geschmacksache. (Oberon- und Modula-Programmierer bevorzugen
- haeufig den AmokEd, weil der in Oberon geschrieben ist und die
- Fehlermeldungen von AmiOberon direkt anzeigen kann.
- C-Programmierer dagegen stehen oefter auf letzterem.) Quellen:
- Aminet, Directory `util/edit', Fish-Disk 776 (XDME) und 749
- (AmokEd), AMOK 90.
-
- 4.2 Was fuer Textverarbeitungsprogramme gibt es?
- ================================================
-
- Textverarbeitungsprogramme benoetigt man, um Briefe, Artikel oder
- aehnliches zu schreiben. Dies ist natuerlich eine der wichtigsten
- Anwendungen eines Computers und eine fuer Sie geeignete Wahl bestimmt
- haeufig, wie gut Sie mit Ihrem Computer ueberhaupt zurechtkommen.
- Textverarbeitungsprogramme besitzen teilweise Faehigkeiten, die sie
- sogar fuer DTP (siehe DTP) geeignet machen. Fuer einfacher
- strukturierte Texte, etwa Quelltexte benuetzt man allerdings meist
- besser einen Editor. Siehe Editoren.
-
- Man unterscheidet Wysiwyg-Programme (What you see is what you get)
- und Seitenbearbeitungssprachen. Wysiwyg-Programme sollten schnell,
- komfortabel und einfach erlernbar sein. Die meisten Anwender ziehen sie
- vor. Die Alternative ist ein funktioniert aehnlich wie Compiler: Man
- verarbeitet Text-Dateien mit einem Programm, das das Layout uebernimmt
- und eine weitere Datei erzeugt, die dann mit auf dem Bildschirm
- angezeigt oder auf einem Drucker ausgegeben werden kann. LaTeX ist
- eines dieser Programme. Siehe TeX. Lout ist ein weiteres solches
- Programm, schneller und einfacher als LaTeX und mit vollstaendiger
- Dokumentation versehen, aber natuerlich wesentlich weniger verbreitet.
- Lout erzeugt PostScript-Dateien. (Ob dies ein Vor- oder Nachteil ist,
- muss jeder selbst beurteilen. ;-) Siehe PostScript. Beide Programme
- sind frei kopierbar.
-
- Wysiwyg-Programme gibt es viele, allerdings alle kommerziell: Final
- Copy II, Wordworth, Word Perfect, AmiWrite, Beckertext II, Maxon Word
- und viele andere. Zur Wahl kann ich nur eines sagen: Lassen Sie sich
- viel Zeit bei der Auswahl.
-
- 4.3 Desktop Publishing
- ======================
-
- Diese Staerke dieser Programme ist die beliebige Anordnung und
- Gestaltung von Text- oder Grafikelementen. Bei Textverarbeitungen sind
- diese Faehigkeiten meist unterentwickelt. Umgekehrt fehlen
- DTP-Programmen haeufig wichtige Funktionen zur Manipulation des Textes
- selbst. Allerdings kommen die besten Textverarbeitungen sicher nahe an
- den DTP Bereich (etwa Microsoft Word auf dem Mac oder PC) und umgekehrt
- ist Framemaker (UNIX, Mac, DOS) ein Beispiel eines DTP-Programms, das
- die wichtigsten Textverarbeitungsfunktionen enthaelt. Auf dem Amiga
- gibt es leider weder in der einen noch in der anderen Richtung
- hervorragende Beispiele, wenn auch die wichtigsten Textverarbeitungen
- schon einiges leisten. Wenn man nicht gerade regelmaessig kleinere
- Zeitungen herausbringt, dann wird in den meisten Faellen ein
- Textverarbeitungsprogramm genuegen. Und wer umgekehrt komplexere
- Funktionen wie mathematische Formeln, umfangreiche Indexe und
- Referenztabellen benoetigt, der wird womoeglich auf eine
- Seitenbearbeitungssprache angewiesen sein. Siehe Textverarbeitungen.
-
- Es gibt derzeit nur kommerzielle DTP-Systeme, vor allem ProPage und
- PageStream, die in den letzten Jahren wohl gegenseitig Hase und Igel
- miteinander gespielt haben. Derzeit scheint PageStream 3.0 vorne zu
- liegen. Beide Programme liegen im Preis um 300$, in den USA gibt es
- wohl auch Studentenermaessigung (um 40%). Eine ausfuehrlichere
- Beschreibung waere willkommen.
-
- 4.4 Was ist TeX und wo bekomme ich es?
- ======================================
-
- TeX ist eines der maechtigsten Textverarbeitungssysteme, die es gibt.
- Es kann praktisch beliebige mathematische Formeln ebenso darstellen wie
- komplexe Tabellen, Funktionen plotten (mit Hilfsprogrammen), Indexe oder
- Inhaltsverzeichnisse erzeugen und viele andere Dinge. Sein groesster
- Vorteil ist, dass es frei kopierbar ist (TeX selbst, nicht unbedingt die
- Drucker- und Bildschirmtreiber) und sich dadurch auf der ganzen Welt und
- auf praktisch jeder Computerfamilie verbreitet hat. Sein groesster
- Nachteil ist, dass es sehr unhandlich und schwer zu erlernen ist (Es
- arbeitet aehnlich wie ein Compiler.) und keinerlei Wysiwyg-Faehigkeiten
- hat. Aber viele Leute moegen es. (Dieser Text ist uebrigens mit TeX
- erstellt worden. 8-) Siehe Textverarbeitungen.
-
- Es gibt im wesentlichen zwei Implementationen auf dem Amiga.
- Amiga-TeX von Thomas Rockicki und Radical Eye Software ist kommerziell
- und kostet etwa 200-300$. Es soll wirklich exzzellent sein und seine
- Besitzer schwoeren darauf.
-
- Ich persoenlich empfehle PasTeX, eine frei kopierbare Version. Es
- gibt immer wieder Leute, die ueber Installationsprobleme klagen
- (besonders, was das Laden und die automatische Erzeugung von Fonts
- angeht), aber ich kenne niemanden, der unzufrieden ist, nachdem es erst
- einmal installiert ist. (Ein Freund mit TeX-Kenntnissen kann enorm
- hilfreich sein.) Wenn man sich an die Vorgaben des Installationsskripts
- haelt, sollte es eigentlich keine Probleme geben. Wesentlich ist
- allerdings, dass man alles noetige installiert und dazu braucht man:
- * 5 Disketten mit dem eigentlichen TeX-Compiler
-
- * 2 Disketten mit MetaFont
-
- * Nichts weiter Viele Leute fragen nach Fonts. Diese sind Teil des
- MetaFont-Paketes und werden automatisch erzeugt, wenn sie gebraucht
- werden, vorausgesetzt natuerlich, dass TeX so wie in der Dokumentation
- beschrieben installiert ist. (Das Erzeugen der Fonts kann am Anfang
- natuerlich dauern bis die wichtigsten erst mal da sind.) Bitte beachten
- Sie, dass die PasTeX-Disketten mit Zoom gepackt sind. (siehe Endungen)
- PasTeX bekommt man per FTP z.B. bei `ftp.uni-passau.de' im Directory
- `/pub/amiga/tex/PasTeX1.3'.
-
- 4.5 Gibt es PostScript-Interpreter auf dem Amiga?
- =================================================
-
- PostScript ist eine Programmiersprache fuer das Ausdrucken von
- ganzen Seiten. Apple hat PostScript populaer gemacht, indem sie es in
- ihre Drucker eingebaut haben.Inzwischen gibt es viele Programme, die
- ihre Ausdrucke als PostScript-Quelltexte machen koennen. Bis vor kurzem
- brauchte man fuer PostScript einen relativ teuren Laserdrucker.
- Inzwischen gibt es aber auch Programme, die PostScript-Dateien auf
- anderen Druckern ausgeben koennen.
-
- Einer der Vorteile von PostScript ist, dass es unabhaengig von der
- gewaehlten Aufloesung ist. Man kann also die Vorteile der moeglichen
- Aufloesung auf dem Drucker ausnutzen und trotzdem dieselbe Datei auf
- dem Bildschirm mit seiner meist schlechteren Aufloesung darstellen.
-
- Es gibt zwei frei kopierbare PostScript-Interpreter, Post und
- GhostScript. Post ist eine shared-Library mit Programmen zur Ausgabe
- auf Drucker und Bildschirm. Man kann damit beispielsweise in AmigaTeX
- PostScript-Dateien als Bilder in TeX-Dateien einbauen. Siehe TeX.
- GhostScript besteht ebenfalls aus zwei Programmen, GhostScript selbst
- (der eigentliche Interpreter) und GhostView, der Benutzeroberflaeche.
- Quellen: Aminet (Directories `text/print' und `text/dtp'), Fish Disk
- 669.
-
- --
- Jochen Wiedmann E-Mail: wiedmann@mailserv.zdv.uni-tuebingen.de
-